#include <stdio.h>
#include <stdlib.h>

int N = 30;

void PrintArray(int* arr) {
    printf("[");
    for (int i = 0; i < N; i++) {
        printf("%d ", arr[i]);
    }
    printf("]\n");
}

int main() {
    int* arr1 = (int*)malloc(N * sizeof(int));
    for (int i = 0; i < N; i++) {
        arr1[i] = i + 1;
    }
    // 问题，中括号声明出来的数组能sizeof获取长度，但是malloc出来的不能
    // printf("%d ", arr[104]);
    PrintArray(arr1);

    N += 20;
    int* arr2 = (int*)realloc(arr1, N);

    PrintArray(arr1);
    PrintArray(arr2);
    printf("%p %p\n", arr1, arr2);
    N += 10000;
    int* arr3 = (int*)realloc(arr2, N);

    printf("%p %p %p\n", arr1, arr2, arr3);

    return 0;
}
